

export const excepTypeId = (value) =>{

    let name = {
        '1':"进围栏",
        '2':"出围栏",
        '3':"断电",
        '4':"离线(4G无信号)",
        '5':"低电量(10%)",
        '6':"故障(GPS无信号)",
    }

    return name[value]

}

let timeout = null;
/**
 * 防抖原理：一定时间内，只有最后一次操作，再过wait毫秒后才执行函数
 * @param {Function} func 要执行的回调函数 
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行 
 * @return null
 */
 export const debounce = (func, wait = 500, immediate = false)=>{
	// 清除定时器
	if (timeout !== null) clearTimeout(timeout);
	// 立即执行，此类情况一般用不到
	if (immediate) {
		var callNow = !timeout;
		timeout = setTimeout(function() {
			timeout = null;
		}, wait);
		if (callNow) typeof func === 'function' && func();
	} else {
		// 设置定时器，当最后一次操作后，timeout不会再被清除，所以在延时wait毫秒后执行func回调方法
		timeout = setTimeout(function() {
			typeof func === 'function' && func();
		}, wait);
	}
}

export const debounceop = (func, delay)=> {
	// 设置定时器标识
	let timer;
	// 难点返回事件绑定函数
	return function() {
		// func指定this
		let context = this;
		// func参数
		let args = arguments;
		// 先清除定时器
		clearTimeout(timer);
		//设置定时器
		timer = setTimeout(() => {
			// 调用函数
			func.apply(context, args);
		}, delay);
	}
}
//面上随机生成点位
export const generateRandomPointOnFace=(vertices) =>{
	if (vertices.length < 3) {
	  console.error('At least 3 vertices are required to form a face.');
	  return null;
	}
	
	// 随机选择一个基准顶点
	const baseVertex = vertices[Math.floor(Math.random() * vertices.length)];
	
	// 随机选择一个边上的权重
	const weight1 = Math.random();
	const weight2 = Math.random();
	
	// 选择相邻的两个顶点
	const adjacentVertex1 = vertices[(vertices.indexOf(baseVertex) + 1) % vertices.length];
	const adjacentVertex2 = vertices[(vertices.indexOf(baseVertex) + 2) % vertices.length];
	
	// 计算随机点的坐标
	const x = weight1 * baseVertex[0] + weight2 * adjacentVertex1[0] + (1 - weight1 - weight2) * adjacentVertex2[0];
	const y = weight1 * baseVertex[1] + weight2 * adjacentVertex1[1] + (1 - weight1 - weight2) * adjacentVertex2[1];
	
	return [x, y];
  }



